package com.example.micro_property_springboot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 盘点计划表（对应数据库表asset_check_plan）
 */
@Data
@TableName("asset_check_plan")
public class AssetCheckPlan {

    @TableId(type = IdType.AUTO)
    @NotNull(message = "盘点计划ID不能为空")
    private Long id; // 盘点计划ID

    @TableField("plan_no")
    @NotNull(message = "计划编号不能为空")
    private String planNo; // 计划编号（唯一）

    @TableField("check_scope")
    @NotNull(message = "盘点范围不能为空")
    private String checkScope; // 盘点范围（ALL-全量，DEPT-部门，CATEGORY-分类）

    @TableField("scope_id")
    @NotNull(message = "范围ID不能为空")
    private Long scopeId; // 范围ID（部门ID/分类ID，全量时为NULL）

    @TableField("check_user_id")
    @NotNull(message = "盘点人ID不能为空")
    private Long checkUserId; // 盘点人ID

    @TableField("start_time")
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime; // 开始时间

    @TableField("end_time")
    @NotNull(message = "截止时间不能为空")
    private LocalDateTime endTime; // 截止时间

    @TableField("status")
    @NotNull(message = "状态不能为空")
    private String status; // 状态（NOT_STARTED-未开始，IN_PROGRESS-进行中，COMPLETED-已完成）

    @TableField("create_time")
    @NotNull(message = "创建时间不能为空")
    private LocalDateTime createTime; // 创建时间

    @TableField("update_time")
    @NotNull(message = "更新时间不能为空")
    private LocalDateTime updateTime; // 更新时间
}
